package org.jeecg.modules.manage.technology.service.ai.record;

import com.fasterxml.jackson.annotation.JsonProperty;
import dev.langchain4j.model.output.structured.Description;

import java.util.List;

/**
 * 专利技术分析结果
 * 使用LangChain4j结构化输出
 *
 * @Author: jeecg-boot
 * @Date: 2025-11-04
 * @Version: V1.0
 */

@Description("专利技术分析结果，包含技术谱系和美国政府资助信息")
public record PatentTechnologyAnalysis(

        @JsonProperty(required = true)
        @Description("匹配的技术谱系ID列表，如果无法确定则返回空数组")
        List<String> genealogyIds,

        @Description("技术分析的置信度，0.0-1.0之间")
        Double confidence,

        @Description("技术分析过程中的备注信息")
        String remarks,

        @JsonProperty(required = true)
        @Description("是否为美国政府资助专利，1-是，0-不是，默认为0")
        String isUsGovFunded,

        @Description("美国政府资助信息描述，只有确认政府资助时才填写")
        String usGovFundingInfo
) {

    /**
     * 创建空结果
     */
    public static PatentTechnologyAnalysis empty(String remarks) {
        return new PatentTechnologyAnalysis(List.of(), 0.0, remarks, "0", null);
    }

    /**
     * 创建成功结果（不包含政府资助）
     */
    public static PatentTechnologyAnalysis success(List<String> genealogyIds, Double confidence) {
        return new PatentTechnologyAnalysis(genealogyIds, confidence, "分析成功", "0", null);
    }

    /**
     * 创建完整结果（包含政府资助）
     */
    public static PatentTechnologyAnalysis complete(List<String> genealogyIds, Double confidence,
                                                   String isUsGovFunded, String usGovFundingInfo) {
        return new PatentTechnologyAnalysis(genealogyIds, confidence, "分析成功", isUsGovFunded, usGovFundingInfo);
    }
}
